/*******************************************************************************
 * Copyright (c) 2011 Jovansonlee B. Cesar.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Public License v2.0
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 * 
 * Contributors:
 *     Jovansonlee B. Cesar - initial API and implementation
 ******************************************************************************/
package com.ivanceras.client;

import java.util.HashMap;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.ivanceras.shared.bo.Ad_column;
import com.ivanceras.shared.bo.Ad_tab;
import com.ivanceras.shared.bo.Ad_table;
import com.ivanceras.shared.bo.Ad_window;
import com.ivanceras.shared.db.DAO;
import com.ivanceras.shared.db.Filter;
import com.ivanceras.shared.db.Order;
import com.ivanceras.shared.db.SerializableDAO;
import com.ivanceras.shared.db.SerializableFilter;

/**
 * The async counterpart of <code>GreetingService</code>.
 */
public interface DataServiceAsync {
	void retrieveWindowList(AsyncCallback<Ad_window[]> callback);

	void retriveTabList(Ad_window window, AsyncCallback<Ad_tab[]> asyncCallback);

	void retrieveTableData(Ad_table table, Integer page, Integer itemPerPage, Order order, 
			SerializableFilter sfilter, AsyncCallback<SerializableDAO[]> callback);

	void importDaoXmlFromUrl(String httpurl, AsyncCallback<Boolean> callback);

	void getTableList(String xmlurl,
			AsyncCallback<HashMap<String, Integer>> callback);

	void retrieveChrildrenTableData(Ad_table parent, Ad_table table,
			Integer page, Integer itemPerPage, Order order,
			SerializableFilter sfilter,
			AsyncCallback<SerializableDAO[]> callback);

	void retrieveListData(Ad_column column,
			AsyncCallback<HashMap<String, String>> callback);

	void retrieveDataName(Ad_column column, String value, AsyncCallback<String> callback);
}
